<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 插槽的基本使用
        1、<slot></slot>
        2、插槽的默认值<slot><button type="button"></button></slot>
        3、如果有多个值,同时放入到组件中进行替换,它会将放入的值作为元素一起替换
    -->
    <div id="app">
        <cpn>
            <i>这是i</i>
            <div>这是div</div>
            <p>这是p</p>
            <cpn></cpn>
        </cpn>
        <cpn></cpn>
        <cpn></cpn>
        <cpn></cpn>
    </div>
    <!-- 子组件的模板 -->
    <template id="mycpn">
        <div style="border: 1px solid red;margin:20px 20px;">
            <h2>这是子组件的内容</h2>
            <!-- 插槽 slot
                slot可以理解为占位符 或者说是子组件暴露的一个让父组件自定义内容的接口
                插槽的内容可以包含：HTML、其他组件
                只要组件中的内容是可以变的 这个时候就可以考虑使用插槽
            -->
            <slot>
                <button type="button"></button>
            </slot>
        </div>
    </template>
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.js"></script>
    <script>
        /* 创建子组件对象 */
        let cpn = {
            template:'#mycpn'
        }
        new Vue({
            el:'#app',
            data:{

            },
            components:{//注册组件
                cpn
            }
        })

    </script>
    
</body>
</html>